Part1 - launch gazebo
launch gazebo simple example
Table of Content
gazebo_ros#
Provides ROS plugins that offer message and service publishers for interfacing with Gazebo through ROS.
sudo apt install ros-foxy-gazebo-ros
#
sudo apt install ros-foxy-gazebo-ros
project#
├── CMakeLists.txt
├── launch
│ └── basic_gazebo.launch.py
├── package.xml
└── worlds
└── empty.world
world#
empty.world
<?xml version='1.0'?>
<sdf version="1.6">
<world name="room">
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
</world>
</sdf>
launch#
basic_gazebo.launch.py
from launch import LaunchDescription
import os
from ament_index_python.packages import get_package_share_directory
from launch.actions import AppendEnvironmentVariable, DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
PACKAGE = "ros2_gazebo_tutorial"
WORLD = "empty.world"
def generate_launch_description():
ld = LaunchDescription()
pkg = get_package_share_directory(PACKAGE)
gazebo_pkg = get_package_share_directory('gazebo_ros')
verbose = LaunchConfiguration("verbose")
arg_gazebo_verbose = DeclareLaunchArgument("verbose", default_value="true")
world = LaunchConfiguration("world")
arg_gazebo_world = DeclareLaunchArgument("world", default_value=WORLD)
resources = [os.path.join(pkg, "worlds")]
resource_env = AppendEnvironmentVariable(
name="GAZEBO_RESOURCE_PATH", value=":".join(resources)
)
models = [os.path.join(pkg, "models")]
models_env = AppendEnvironmentVariable(
name="GAZEBO_MODEL_PATH", value=":".join(models)
)
gazebo = IncludeLaunchDescription(
PythonLaunchDescriptionSource([os.path.join(
gazebo_pkg, 'launch', 'gazebo.launch.py')]),
launch_arguments={'verbose': verbose, "world": world}.items()
)
ld.add_action(models_env)
ld.add_action(resource_env)
ld.add_action(arg_gazebo_verbose)
ld.add_action(arg_gazebo_world)
ld.add_action(gazebo)
return ld
cmake#
- Copy launch and world folders
CMakeLists.txt
# Add this line to CMakeLists.txt
install(DIRECTORY
launch
worlds
DESTINATION share/${PROJECT_NAME}/
)